1. Field of the Invention
Embodiments of the invention relates to the field of operating systems, and more specifically, to thread management.
2. Description of Related Art
Multithreading technologies have become popular in multiprocessor systems to support various levels of parallelism, to enable dynamic load balancing, to support virtual processors, and to enhance system performance. One of the challenges in designing an efficient multithreaded multiprocessor system is thread scheduling.
The performance of a multithreaded multiprocessor system depends on a number of factors such as local memory utilization, thread communication, and load balancing. To achieve high performance, a scheduling policy should select processors for thread assignment such that the overall processor utilization is optimized for a particular application. This problem is difficult because as the number of resources increases, the total number of possible configurations of combinations of processors also increases. The exact number of processors available at run time may not be known in advance. Therefore, the pre-determination of possible processor configurations for a particular application under some specific system-level constraints is almost impossible. An exhaustive search of all possible processor configurations is computationally expensive and the resulting exhaustive list occupies wasted memory storage. In addition, since thread scheduling is performed at run time, a search for a suitable processor configuration from this exhaustive list takes up a lot of system resources.